﻿using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;

namespace _032_自定义XML元素的名称
{
    class Program
    {
        static void Main(string[] args)
        {

            using (FileStream 序列操作=new FileStream("zoomla.xml",FileMode.Create))
            {
                //实例化产品表
                产品表 类之在这 = new 产品表
                {
                    ProductID = 7078201,
                    ProductTime = new DateTime(2018, 3, 1),
                    ProductSzie = 37.3f,
                    ProductRemarks = "new style"
                };

                //输出序列化的前的状态
                StringBuilder 操作手柄 = new StringBuilder();
                操作手柄.AppendLine($"产品ID：{类之在这.ProductID}");
                操作手柄.AppendLine($"生产日期：{类之在这.ProductTime:d}");
                操作手柄.AppendLine($"尺寸：{类之在这.ProductSzie}");
                操作手柄.AppendLine($"备注：{类之在这.ProductRemarks}");
                Console.Write(操作手柄 + "\n\n");

                //进行序列化
                XmlSerializer 来一下 = new XmlSerializer(类之在这.GetType());
                来一下.Serialize(序列操作, 类之在这);
            }

            //读取并输出序列化后生成的xml文件
            using (FileStream 读取出来=new FileStream("zoomla.xml", FileMode.Open))
            {
                using (StreamReader 进入读操作=new StreamReader(读取出来))
                {
                    string 文件名 = 进入读操作.ReadToEnd();
                    Console.WriteLine("序列化后生成XML的文档：");
                    Console.Write(文件名);
                }
            }
            Console.Read();

        }
    }

    [XmlRoot("prod_info")]
    public class 产品表
    {
        [XmlElement("prod_id")]
        public long  ProductID { get; set; }
        [XmlElement("prod_time")]
        public DateTime ProductTime { get; set; }
        [XmlElement("prod_size")]
        public float ProductSzie { get; set; }
        [XmlElement("prod_remarks")]
        public string ProductRemarks { get; set; }
    }

}
